//
// Created by sgyt on 2019/12/21.
// 使用dup函数复制文件描述符(复制文件操作中，偏移量改变，源文件偏移量是否改变,原文件是否写入数据)
#include <stdlib.h>
#include <stdio.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>

int main(int argc,char *argv[])
{
    int fd = open("duptest.txt",O_RDWR|O_CREAT,0777);
    if(fd < 0 )
    {
        perror("open error\n");
    }
    //复制一份文件描述
    int newfd = dup(fd);
    //往新的文件描述符中写入
    char buf[] = "hello world";
    memset(buf, sizeof(buf),0x00);
    int res = write(newfd,buf,strlen(buf));

    int fd_offset = lseek(fd,0,SEEK_CUR);
    int newfd_offset = lseek(newfd,0,SEEK_CUR);
    printf("fd_offset = %d,newfd_offset = %d\n",fd_offset,newfd_offset);
    close(fd);
    close(newfd);
    return 1;
}


